package my.util;

/**
 * <p>
 * 队列
 * </p>
 *
 * @author AJun
 * @since 2020/8/17
 */
@SuppressWarnings("unused")
public class Queue<E> {

    /**
     * 用 LinkedList 实现队列
     */
    private final List<E> list = new LinkedList<>();

    /**
     * 返回队列大小
     */
    public int size() {
        return list.size();
    }

    /**
     * 队列是否为空
     */
    public boolean empty() {
        return list.isEmpty();
    }

    /**
     * 清空队列元素
     */
    public void clear() {
        list.clean();
    }

    /**
     * 队尾入队
     */
    public void enQueue(E element) {
        list.add(element);
    }

    /**
     * 队头出队
     */
    public E deQueue() {
        return list.remove(0);
    }

    /**
     * 返回队头元素
     */
    public E front() {
        return list.get(0);
    }

    @Override
    public String toString() {
        return list.toString();
    }

}
